// node 4_隐式转换.js

var data = [0]

console.log(data == true)

//隐式转换规则
//布尔类型     转换为数值进行比较
//字符串       转换为数值进行比较
//对象         首先调用valueOf(),如果不能转换为数值进行比较则调用toString()并测试其返回值,如果还不行则抛出异常TypeError

// [] == true          

// null == undefined   true
// null === undefined  false

// NaN == NaN          false
// NaN != NaN          true

// false == 0          true
// true == 1           true
// true == 2           false

//用isNaN()判断是否‘不是数值’
//NaN不等于包括NaN在内的任何值
//任何涉及NaN的操作(运算)都返回NaN
// isNaN(NaN)          true
// isNaN("10")         false  "10" 可以转换为 10
// isNaN(true)         false  true 可以转换为 1
// isNaN('ab')         true   "ab" 不可以转换为数值

// 用typeof确定任意变量的数据类型
// typeof null  object  null被认为是一个空对象的引用
// typeof NaN   number